// Made with Amplify Shader Editor v1.9.1.2
// Available at the Unity Asset Store - http://u3d.as/y3X 
Shader "FogPlane"
{
	Properties
	{
		[HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
		[HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
		[ASEBegin]_CloudTexture("Cloud Texture", 2D) = "white" {}
		_FogWorldSize("Fog World Size", Range( 0.01 , 1)) = 1
		_FogFlowSpeed("Fog Flow Speed", Vector) = (1,1,0,0)
		_FogWorldSize2("Fog World Size 2", Range( 0.01 , 1)) = 1
		_FogFlowSpeed2("Fog Flow Speed 2", Vector) = (1,0.5,0,0)
		_FogIntensity("Fog Intensity", Range( 0 , 1)) = 1
		[Toggle(_ENABLEPARALLAX_ON)] _EnableParallax("Enable Parallax", Float) = 0
		_CloudHeightScale("Cloud Height Scale", Range( 0 , 1)) = 1
		_FogLightColor("Fog Light Color", Color) = (0,0,0,0)
		[ASEEnd]_FogDarkColor("Fog Dark Color", Color) = (0,0,0,0)

	}

	SubShader
	{
		LOD 0

		

		Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Opaque" "Queue"="Geometry" }
		Cull Back
		AlphaToMask Off
		HLSLINCLUDE

		ENDHLSL

		
		Pass
		{
			
			Name "Forward"
			Tags { "LightMode"="UniversalForward" }

			Blend One Zero, One Zero
			ZWrite On
			ZTest LEqual
			Offset 0 , 0
			ColorMask RGBA
			

			HLSLPROGRAM
			#define _RECEIVE_SHADOWS_OFF 1
			#define ASE_SRP_VERSION 100900

			#pragma prefer_hlslcc gles
			
			#pragma target 3.0

			#pragma vertex vert
			#pragma fragment frag

			#define SHADERPASS_FORWARD

			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
			#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl"
			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"




			#if ASE_SRP_VERSION <= 70108
			#define REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR
			#endif

			// #if defined(UNITY_INSTANCING_ENABLED) && defined(_TERRAIN_INSTANCED_PERPIXEL_NORMAL)
			//     #define ENABLE_TERRAIN_PERPIXEL_NORMAL
			// #endif
   //
   //          #if (defined(_NORMALMAP) || (defined(_PARALLAXMAP) && !defined(REQUIRES_TANGENT_SPACE_VIEW_DIR_INTERPOLATOR))) || defined(_DETAIL)
   //          #define REQUIRES_WORLD_SPACE_TANGENT_INTERPOLATOR
   //          #endif

			#define ASE_NEEDS_FRAG_WORLD_TANGENT
			#define ASE_NEEDS_FRAG_WORLD_NORMAL
			#define ASE_NEEDS_FRAG_WORLD_BITANGENT
			#define ASE_NEEDS_FRAG_WORLD_VIEW_DIR
			#pragma shader_feature_local _ENABLEPARALLAX_ON

			struct Attributes
			{
                float4 positionOS : POSITION;
                float3 normalOS : NORMAL;
                float4 tangentOS : TANGENT;
                float2 texcoord : TEXCOORD0;
                float2 lightmapUV : TEXCOORD1;
				
				UNITY_VERTEX_INPUT_INSTANCE_ID
			};
			struct Varyings
			{
                float2 uv : TEXCOORD0;
                DECLARE_LIGHTMAP_OR_SH(lightmapUV, vertexSH, 1);

                // #if defined(REQUIRES_WORLD_SPACE_POS_INTERPOLATOR)
                float3 positionWS : TEXCOORD2;
                // #endif

                float3 normalWS : TEXCOORD3;
                // #if defined(REQUIRES_WORLD_SPACE_TANGENT_INTERPOLATOR)
                float4 tangentWS : TEXCOORD4; // xyz: tangent, w: sign
                // #endif
                float3 viewDirWS : TEXCOORD5;

                half4 fogFactorAndVertexLight : TEXCOORD6; // x: fogFactor, yzw: vertex light

                #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
                float4 shadowCoord              : TEXCOORD7;
                #endif

                float4 positionCS : SV_POSITION;
				float4 ase_texcoord8 : TEXCOORD8;
				UNITY_VERTEX_INPUT_INSTANCE_ID
				UNITY_VERTEX_OUTPUT_STEREO
			};


			CBUFFER_START(UnityPerMaterial)

			float4 _FogDarkColor;
			float4 _FogLightColor;
			float4 _CloudTexture_ST;
			float2 _FogFlowSpeed;
			float2 _FogFlowSpeed2;
			float _FogWorldSize;
			float _FogWorldSize2;
			float _FogIntensity;
			float _CloudHeightScale;
			CBUFFER_END
			sampler2D _CloudTexture;


			inline float2 POM( sampler2D heightMap, float2 uvs, float2 dx, float2 dy, float3 normalWorld, float3 viewWorld, float3 viewDirTan, int minSamples, int maxSamples, float parallax, float refPlane, float2 tilling, float2 curv, int index )
			{
				float3 result = 0;
				int stepIndex = 0;
				int numSteps = ( int )lerp( (float)maxSamples, (float)minSamples, saturate( dot( normalWorld, viewWorld ) ) );
				float layerHeight = 1.0 / numSteps;
				float2 plane = parallax * ( viewDirTan.xy / viewDirTan.z );
				uvs.xy += refPlane * plane;
				float2 deltaTex = -plane * layerHeight;
				float2 prevTexOffset = 0;
				float prevRayZ = 1.0f;
				float prevHeight = 0.0f;
				float2 currTexOffset = deltaTex;
				float currRayZ = 1.0f - layerHeight;
				float currHeight = 0.0f;
				float intersection = 0;
				float2 finalTexOffset = 0;
				while ( stepIndex < numSteps + 1 )
				{
				 	currHeight = tex2Dgrad( heightMap, uvs + currTexOffset, dx, dy ).r;
				 	if ( currHeight > currRayZ )
				 	{
				 	 	stepIndex = numSteps + 1;
				 	}
				 	else
				 	{
				 	 	stepIndex++;
				 	 	prevTexOffset = currTexOffset;
				 	 	prevRayZ = currRayZ;
				 	 	prevHeight = currHeight;
				 	 	currTexOffset += deltaTex;
				 	 	currRayZ -= layerHeight;
				 	}
				}
				int sectionSteps = 2;
				int sectionIndex = 0;
				float newZ = 0;
				float newHeight = 0;
				while ( sectionIndex < sectionSteps )
				{
				 	intersection = ( prevHeight - prevRayZ ) / ( prevHeight - currHeight + currRayZ - prevRayZ );
				 	finalTexOffset = prevTexOffset + intersection * deltaTex;
				 	newZ = prevRayZ - intersection * layerHeight;
				 	newHeight = tex2Dgrad( heightMap, uvs + finalTexOffset, dx, dy ).r;
				 	if ( newHeight > newZ )
				 	{
				 	 	currTexOffset = finalTexOffset;
				 	 	currHeight = newHeight;
				 	 	currRayZ = newZ;
				 	 	deltaTex = intersection * deltaTex;
				 	 	layerHeight = intersection * layerHeight;
				 	}
				 	else
				 	{
				 	 	prevTexOffset = finalTexOffset;
				 	 	prevHeight = newHeight;
				 	 	prevRayZ = newZ;
				 	 	deltaTex = ( 1 - intersection ) * deltaTex;
				 	 	layerHeight = ( 1 - intersection ) * layerHeight;
				 	}
				 	sectionIndex++;
				}
				return uvs.xy + finalTexOffset;
			}
			

			Varyings vert ( Attributes input  )
			{
				Varyings output = (Varyings)0;

                UNITY_SETUP_INSTANCE_ID(input);
                UNITY_TRANSFER_INSTANCE_ID(input, output);
                UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);

				float3 defaultVertexValue = float3(0, 0, 0);
				output.ase_texcoord8.xy = input.texcoord;
				
				//setting value to unused interpolator channels and avoid initialization warnings
				output.ase_texcoord8.zw = 0;
				float3 vertexValue = defaultVertexValue;
				input.positionOS.xyz += vertexValue;


                VertexPositionInputs vertexInput = GetVertexPositionInputs(input.positionOS.xyz);

                // normalWS and tangentWS already normalize.
                // this is required to avoid skewing the direction during interpolation
                // also required for per-vertex lighting and SH evaluation
                VertexNormalInputs normalInput = GetVertexNormalInputs(input.normalOS, input.tangentOS);

                half3 viewDirWS = GetWorldSpaceViewDir(vertexInput.positionWS);
                half3 vertexLight = VertexLighting(vertexInput.positionWS, normalInput.normalWS);
                half fogFactor = ComputeFogFactor(vertexInput.positionCS.z);




                // output.uv = TRANSFORM_TEX(input.texcoord, _BaseMap);
				output.uv = input.texcoord;

                // already normalized from normal transform to WS.
                output.normalWS = normalInput.normalWS;
                output.viewDirWS = viewDirWS;
                // #if defined(REQUIRES_WORLD_SPACE_TANGENT_INTERPOLATOR) || defined(REQUIRES_TANGENT_SPACE_VIEW_DIR_INTERPOLATOR)
                output.tangentWS = half4(normalInput.tangentWS.xyz, input.tangentOS.w * GetOddNegativeScale());
                // #endif

                // #if defined(REQUIRES_TANGENT_SPACE_VIEW_DIR_INTERPOLATOR)
                //             half3 viewDirTS = GetViewDirectionTangentSpace(tangentWS, output.normalWS, viewDirWS);
                //             output.viewDirTS = viewDirTS;
                // #endif

                OUTPUT_LIGHTMAP_UV(input.lightmapUV, unity_LightmapST, output.lightmapUV);
                OUTPUT_SH(output.normalWS.xyz, output.vertexSH);

                output.fogFactorAndVertexLight = half4(fogFactor, vertexLight);

                // #if defined(REQUIRES_WORLD_SPACE_POS_INTERPOLATOR)
                output.positionWS = vertexInput.positionWS;
                // #endif

                #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
					output.shadowCoord = GetShadowCoord(vertexInput);
                #endif

                // output.positionCS = vertexInput.positionCS;
				output.positionCS =  vertexInput.positionCS ;
				return output;
			}

			half4 frag ( Varyings input  ) : SV_Target
			{
				UNITY_SETUP_INSTANCE_ID(input);
				UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
				float3 WorldPosition = input.positionWS;
				float3 WorldViewDirection = SafeNormalize(input.viewDirWS);
				float4 WorldTangent = input.tangentWS;
				float3 WorldBiTangent = cross(input.normalWS.xyz, input.tangentWS.xyz) * input.tangentWS.w;
				float3 WorldNormal = input.normalWS;

				float4 shadowCoord = 0;
                #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
					shadowCoord = input.shadowCoord;
                #endif
				


				
			// ----------------------------------------------------------------------------------------------
				float2 temp_output_339_0 = ( input.ase_texcoord8.xy / _FogWorldSize );
				float2 temp_output_344_0 = ( temp_output_339_0 + ( _FogFlowSpeed * ( _TimeParameters.x * 0.05 ) ) );
				float4 tex2DNode336 = tex2D( _CloudTexture, temp_output_344_0 );
				float2 panner97 = ( ( _TimeParameters.x * 0.05 ) * _FogFlowSpeed2 + ( input.ase_texcoord8.xy / _FogWorldSize2 ));
				float4 tex2DNode82 = tex2D( _CloudTexture, panner97 );
				float temp_output_492_0 = ( saturate( ( tex2DNode336.r + tex2DNode82.r ) ) * max( tex2DNode336.r , tex2DNode82.r ) * _FogIntensity );
				float3 tanToWorld0 = float3( WorldTangent.xyz.x, WorldBiTangent.x, WorldNormal.x );
				float3 tanToWorld1 = float3( WorldTangent.xyz.y, WorldBiTangent.y, WorldNormal.y );
				float3 tanToWorld2 = float3( WorldTangent.xyz.z, WorldBiTangent.z, WorldNormal.z );
				float3 ase_tanViewDir =  tanToWorld0 * WorldViewDirection.x + tanToWorld1 * WorldViewDirection.y  + tanToWorld2 * WorldViewDirection.z;
				ase_tanViewDir = normalize(ase_tanViewDir);
				float2 OffsetPOM511 = POM( _CloudTexture, ( temp_output_344_0 + float2( 0,0 ) ), ddx(( temp_output_344_0 + float2( 0,0 ) )), ddy(( temp_output_344_0 + float2( 0,0 ) )), WorldNormal, WorldViewDirection, ase_tanViewDir, 8, 8, ( _CloudHeightScale * tex2DNode82.r ), 0, _CloudTexture_ST.xy, float2(0,0), 0 );
				float4 tex2DNode517 = tex2D( _CloudTexture, OffsetPOM511 );
				#ifdef _ENABLEPARALLAX_ON
				float staticSwitch539 = tex2DNode517.r;
				#else
				float staticSwitch539 = temp_output_492_0;
				#endif
				float4 lerpResult562 = lerp( _FogDarkColor , _FogLightColor , staticSwitch539);
				
				float3 color = lerpResult562.rgb;
				float Alpha = staticSwitch539;
				float AlphaClipThreshold = 0.5;
				float AlphaClipThresholdShadow = 0.5;

				#ifdef _ALPHATEST_ON
					clip(Alpha - AlphaClipThreshold);
				#endif
				
			// ----------------------------------------------------------------------------------------------

				#ifdef ASE_FOG
				half cfogCoord = input.fogFactorAndVertexLight.x;
				color.rgb = MixFog(color.rgb,cfogCoord);
				#endif
				


				return float4(color,Alpha);
			}

			ENDHLSL
		}



		
		Pass
		{
			
			Name "DepthOnly"
			Tags { "LightMode"="DepthOnly" }

			ZWrite On
			ColorMask 0
			AlphaToMask Off

			HLSLPROGRAM
			#define _RECEIVE_SHADOWS_OFF 1
			#define ASE_SRP_VERSION 100900

			#pragma prefer_hlslcc gles
			

			#pragma vertex vert
			#pragma fragment frag

			#define SHADERPASS_DEPTHONLY

			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
			#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"

			#define ASE_NEEDS_VERT_NORMAL
			#define ASE_NEEDS_FRAG_WORLD_POSITION
			#pragma shader_feature_local _ENABLEPARALLAX_ON


			struct VertexInput
			{
				float4 vertex : POSITION;
				float3 ase_normal : NORMAL;
				float4 ase_texcoord : TEXCOORD0;
				float4 ase_tangent : TANGENT;
				UNITY_VERTEX_INPUT_INSTANCE_ID
			};

			struct VertexOutput
			{
				float4 clipPos : SV_POSITION;
				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
				float3 worldPos : TEXCOORD0;
				#endif
				#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
				float4 shadowCoord : TEXCOORD1;
				#endif
				float4 ase_texcoord2 : TEXCOORD2;
				float4 ase_texcoord3 : TEXCOORD3;
				float4 ase_texcoord4 : TEXCOORD4;
				float4 ase_texcoord5 : TEXCOORD5;
				UNITY_VERTEX_INPUT_INSTANCE_ID
				UNITY_VERTEX_OUTPUT_STEREO
			};

			CBUFFER_START(UnityPerMaterial)
			float4 _FogDarkColor;
			float4 _FogLightColor;
			float4 _CloudTexture_ST;
			float2 _FogFlowSpeed;
			float2 _FogFlowSpeed2;
			float _FogWorldSize;
			float _FogWorldSize2;
			float _FogIntensity;
			float _CloudHeightScale;
			CBUFFER_END
			sampler2D _CloudTexture;


			inline float2 POM( sampler2D heightMap, float2 uvs, float2 dx, float2 dy, float3 normalWorld, float3 viewWorld, float3 viewDirTan, int minSamples, int maxSamples, float parallax, float refPlane, float2 tilling, float2 curv, int index )
			{
				float3 result = 0;
				int stepIndex = 0;
				int numSteps = ( int )lerp( (float)maxSamples, (float)minSamples, saturate( dot( normalWorld, viewWorld ) ) );
				float layerHeight = 1.0 / numSteps;
				float2 plane = parallax * ( viewDirTan.xy / viewDirTan.z );
				uvs.xy += refPlane * plane;
				float2 deltaTex = -plane * layerHeight;
				float2 prevTexOffset = 0;
				float prevRayZ = 1.0f;
				float prevHeight = 0.0f;
				float2 currTexOffset = deltaTex;
				float currRayZ = 1.0f - layerHeight;
				float currHeight = 0.0f;
				float intersection = 0;
				float2 finalTexOffset = 0;
				while ( stepIndex < numSteps + 1 )
				{
				 	currHeight = tex2Dgrad( heightMap, uvs + currTexOffset, dx, dy ).r;
				 	if ( currHeight > currRayZ )
				 	{
				 	 	stepIndex = numSteps + 1;
				 	}
				 	else
				 	{
				 	 	stepIndex++;
				 	 	prevTexOffset = currTexOffset;
				 	 	prevRayZ = currRayZ;
				 	 	prevHeight = currHeight;
				 	 	currTexOffset += deltaTex;
				 	 	currRayZ -= layerHeight;
				 	}
				}
				int sectionSteps = 2;
				int sectionIndex = 0;
				float newZ = 0;
				float newHeight = 0;
				while ( sectionIndex < sectionSteps )
				{
				 	intersection = ( prevHeight - prevRayZ ) / ( prevHeight - currHeight + currRayZ - prevRayZ );
				 	finalTexOffset = prevTexOffset + intersection * deltaTex;
				 	newZ = prevRayZ - intersection * layerHeight;
				 	newHeight = tex2Dgrad( heightMap, uvs + finalTexOffset, dx, dy ).r;
				 	if ( newHeight > newZ )
				 	{
				 	 	currTexOffset = finalTexOffset;
				 	 	currHeight = newHeight;
				 	 	currRayZ = newZ;
				 	 	deltaTex = intersection * deltaTex;
				 	 	layerHeight = intersection * layerHeight;
				 	}
				 	else
				 	{
				 	 	prevTexOffset = finalTexOffset;
				 	 	prevHeight = newHeight;
				 	 	prevRayZ = newZ;
				 	 	deltaTex = ( 1 - intersection ) * deltaTex;
				 	 	layerHeight = ( 1 - intersection ) * layerHeight;
				 	}
				 	sectionIndex++;
				}
				return uvs.xy + finalTexOffset;
			}
			

			VertexOutput VertexFunction( VertexInput v  )
			{
				VertexOutput o = (VertexOutput)0;
				UNITY_SETUP_INSTANCE_ID(v);
				UNITY_TRANSFER_INSTANCE_ID(v, o);
				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);

				float3 ase_worldTangent = TransformObjectToWorldDir(v.ase_tangent.xyz);
				o.ase_texcoord3.xyz = ase_worldTangent;
				float3 ase_worldNormal = TransformObjectToWorldNormal(v.ase_normal);
				o.ase_texcoord4.xyz = ase_worldNormal;
				float ase_vertexTangentSign = v.ase_tangent.w * ( unity_WorldTransformParams.w >= 0.0 ? 1.0 : -1.0 );
				float3 ase_worldBitangent = cross( ase_worldNormal, ase_worldTangent ) * ase_vertexTangentSign;
				o.ase_texcoord5.xyz = ase_worldBitangent;
				
				o.ase_texcoord2.xy = v.ase_texcoord.xy;
				
				//setting value to unused interpolator channels and avoid initialization warnings
				o.ase_texcoord2.zw = 0;
				o.ase_texcoord3.w = 0;
				o.ase_texcoord4.w = 0;
				o.ase_texcoord5.w = 0;
				#ifdef ASE_ABSOLUTE_VERTEX_POS
					float3 defaultVertexValue = v.vertex.xyz;
				#else
					float3 defaultVertexValue = float3(0, 0, 0);
				#endif
				float3 vertexValue = defaultVertexValue;
				#ifdef ASE_ABSOLUTE_VERTEX_POS
					v.vertex.xyz = vertexValue;
				#else
					v.vertex.xyz += vertexValue;
				#endif

				v.ase_normal = v.ase_normal;
				float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
				float4 positionCS = TransformWorldToHClip( positionWS );

				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
				o.worldPos = positionWS;
				#endif

				#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
					VertexPositionInputs vertexInput = (VertexPositionInputs)0;
					vertexInput.positionWS = positionWS;
					vertexInput.positionCS = positionCS;
					o.shadowCoord = GetShadowCoord( vertexInput );
				#endif
				o.clipPos = positionCS;
				return o;
			}

			VertexOutput vert ( VertexInput v )
			{
				return VertexFunction( v );
			}

			half4 frag(VertexOutput IN  ) : SV_TARGET
			{
				UNITY_SETUP_INSTANCE_ID(IN);
				UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );

				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
				float3 WorldPosition = IN.worldPos;
				#endif
				float4 ShadowCoords = float4( 0, 0, 0, 0 );

				#if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
					#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
						ShadowCoords = IN.shadowCoord;
					#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
						ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
					#endif
				#endif

				float2 temp_output_339_0 = ( IN.ase_texcoord2.xy / _FogWorldSize );
				float2 temp_output_344_0 = ( temp_output_339_0 + ( _FogFlowSpeed * ( _TimeParameters.x * 0.05 ) ) );
				float4 tex2DNode336 = tex2D( _CloudTexture, temp_output_344_0 );
				float2 panner97 = ( ( _TimeParameters.x * 0.05 ) * _FogFlowSpeed2 + ( IN.ase_texcoord2.xy / _FogWorldSize2 ));
				float4 tex2DNode82 = tex2D( _CloudTexture, panner97 );
				float temp_output_492_0 = ( saturate( ( tex2DNode336.r + tex2DNode82.r ) ) * max( tex2DNode336.r , tex2DNode82.r ) * _FogIntensity );
				float3 ase_worldTangent = IN.ase_texcoord3.xyz;
				float3 ase_worldNormal = IN.ase_texcoord4.xyz;
				float3 ase_worldBitangent = IN.ase_texcoord5.xyz;
				float3 tanToWorld0 = float3( ase_worldTangent.x, ase_worldBitangent.x, ase_worldNormal.x );
				float3 tanToWorld1 = float3( ase_worldTangent.y, ase_worldBitangent.y, ase_worldNormal.y );
				float3 tanToWorld2 = float3( ase_worldTangent.z, ase_worldBitangent.z, ase_worldNormal.z );
				float3 ase_worldViewDir = ( _WorldSpaceCameraPos.xyz - WorldPosition );
				ase_worldViewDir = normalize(ase_worldViewDir);
				float3 ase_tanViewDir =  tanToWorld0 * ase_worldViewDir.x + tanToWorld1 * ase_worldViewDir.y  + tanToWorld2 * ase_worldViewDir.z;
				ase_tanViewDir = normalize(ase_tanViewDir);
				float2 OffsetPOM511 = POM( _CloudTexture, ( temp_output_344_0 + float2( 0,0 ) ), ddx(( temp_output_344_0 + float2( 0,0 ) )), ddy(( temp_output_344_0 + float2( 0,0 ) )), ase_worldNormal, ase_worldViewDir, ase_tanViewDir, 8, 8, ( _CloudHeightScale * tex2DNode82.r ), 0, _CloudTexture_ST.xy, float2(0,0), 0 );
				float4 tex2DNode517 = tex2D( _CloudTexture, OffsetPOM511 );
				#ifdef _ENABLEPARALLAX_ON
				float staticSwitch539 = tex2DNode517.r;
				#else
				float staticSwitch539 = temp_output_492_0;
				#endif
				
				float Alpha = staticSwitch539;
				float AlphaClipThreshold = 0.5;

				#ifdef _ALPHATEST_ON
					clip(Alpha - AlphaClipThreshold);
				#endif

				#ifdef LOD_FADE_CROSSFADE
					LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
				#endif
				return 0;
			}
			ENDHLSL
		}

	
	}
	
	CustomEditor "UnityEditor.ShaderGraph.PBRMasterGUI"
	Fallback "Hidden/InternalErrorShader"
	
}
/*ASEBEGIN
Version=19102
Node;AmplifyShaderEditor.CommentaryNode;557;-1704.758,1474.14;Inherit;False;322;190;Comment;1;539;;1,1,1,1;0;0
Node;AmplifyShaderEditor.CommentaryNode;556;-1642.878,1007.839;Inherit;False;212;292.5948;Comment;2;554;553;;1,1,1,1;0;0
Node;AmplifyShaderEditor.CommentaryNode;532;-2385.557,1084.169;Inherit;False;370;920.0055;Comment;3;517;492;555;;1,1,1,1;0;0
Node;AmplifyShaderEditor.CommentaryNode;411;-11079.37,2776.125;Inherit;False;4322.713;1771.074;Comment;41;365;366;367;368;369;370;371;373;374;375;376;377;379;380;381;382;385;387;388;389;390;391;392;393;395;397;398;399;400;401;402;403;404;405;406;407;408;409;410;386;420;;1,1,1,1;0;0
Node;AmplifyShaderEditor.TimeNode;390;-10675.1,3915.487;Inherit;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;389;-10623.56,4117.682;Inherit;False;Constant;_TimeScale;TimeScale;8;0;Create;True;0;0;0;False;0;False;0.5;0.5;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.TexCoordVertexDataNode;401;-11030.67,3393.857;Inherit;False;0;2;0;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.CommentaryNode;365;-10822.02,3334.184;Inherit;False;370;280;RG对应UV;1;394;非sRGB常规2D纹理 默认无流的是黑色;1,1,1,1;0;0
Node;AmplifyShaderEditor.ScaleAndOffsetNode;391;-10347.73,3823.12;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0.5;False;2;FLOAT;0.5;False;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode;394;-10772.02,3384.184;Inherit;True;Property;_Flow;Flow;22;1;[NoScaleOffset];Create;True;0;0;0;False;0;False;-1;964e056e8bd362f42830daf3e77af2a8;8eec119d7d544c1469995390063459aa;True;0;False;black;Auto;False;Instance;348;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.CommentaryNode;366;-10112.39,3307.807;Inherit;False;318;304;;1;396;向量手动解码;1,1,1,1;0;0
Node;AmplifyShaderEditor.FractNode;387;-9890.009,3829.205;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.DynamicAppendNode;399;-10338.52,3381.121;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;409;-9625.007,3824.205;Inherit;False;phase0;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.ScaleAndOffsetNode;388;-10348.31,4081.505;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0.5;False;2;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.ScaleAndOffsetNode;396;-10066.29,3382.507;Inherit;True;3;0;FLOAT2;0,0;False;1;FLOAT;2;False;2;FLOAT;-1;False;1;FLOAT2;0
Node;AmplifyShaderEditor.GetLocalVarNode;408;-10371.4,2964.191;Inherit;False;409;phase0;1;0;OBJECT;;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;395;-9544.53,3389.276;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.FractNode;392;-9898.009,4082.206;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;393;-9624.007,4080.206;Inherit;False;phase1;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;403;-10161.6,2831.125;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;2;False;1;FLOAT;0
Node;AmplifyShaderEditor.TextureCoordinatesNode;385;-9169.216,4388.199;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RegisterLocalVarNode;398;-9332.335,3371.111;Inherit;False;flowVector;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.GetLocalVarNode;381;-8397.11,3338.413;Inherit;False;398;flowVector;1;0;OBJECT;;False;1;FLOAT2;0
Node;AmplifyShaderEditor.GetLocalVarNode;380;-8390.489,3224.527;Inherit;False;409;phase0;1;0;OBJECT;;False;1;FLOAT;0
Node;AmplifyShaderEditor.GetLocalVarNode;379;-8395.034,3672.422;Inherit;False;393;phase1;1;0;OBJECT;;False;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;386;-8918.899,4371.242;Inherit;False;uvNormal;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.GetLocalVarNode;373;-8390.173,3798.928;Inherit;False;398;flowVector;1;0;OBJECT;;False;1;FLOAT2;0
Node;AmplifyShaderEditor.OneMinusNode;402;-9994.604,2831.125;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;367;-8133.584,3236.446;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.GetLocalVarNode;370;-8386.687,3916.125;Inherit;False;386;uvNormal;1;0;OBJECT;;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;371;-8129.646,3699.96;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.GetLocalVarNode;382;-8376.823,3448.611;Inherit;False;386;uvNormal;1;0;OBJECT;;False;1;FLOAT2;0
Node;AmplifyShaderEditor.AbsOpNode;407;-9828.604,2826.125;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;369;-8002.113,3833.28;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;410;-9597.866,2900.386;Inherit;False;lerpVar;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;375;-7994.053,3354.764;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SamplerNode;374;-7699.855,3294.368;Inherit;True;Property;_Normal;Normal;4;0;Create;True;0;0;0;False;0;False;-1;d6be6cb04b52af344b302ef57bf1bf59;d6be6cb04b52af344b302ef57bf1bf59;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SamplerNode;376;-7704.318,3774.28;Inherit;True;Property;_TextureSample7;Texture Sample 7;4;0;Create;True;0;0;0;False;0;False;-1;d6be6cb04b52af344b302ef57bf1bf59;d6be6cb04b52af344b302ef57bf1bf59;True;0;False;bump;Auto;True;Instance;374;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.GetLocalVarNode;368;-7300.643,3843.417;Inherit;False;410;lerpVar;1;0;OBJECT;;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleDivideOpNode;339;-6481.203,807.2283;Inherit;False;2;0;FLOAT2;0,0;False;1;FLOAT;100;False;1;FLOAT2;0
Node;AmplifyShaderEditor.LerpOp;377;-7021.656,3567.434;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;420;-9446.954,3588.863;Inherit;False;flowspeed;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RelayNode;415;-6612.42,3575.872;Inherit;False;1;0;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.TimeNode;345;-6787.441,1197.387;Inherit;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleSubtractOpNode;406;-10162.4,2963.191;Inherit;False;2;0;FLOAT;0.5;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.AbsOpNode;404;-9810.405,2960.191;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleDivideOpNode;405;-9977.405,2958.191;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0.5;False;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;397;-10056.39,3690.519;Inherit;False;noise;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.TexCoordVertexDataNode;480;-6781.605,735.9988;Inherit;False;0;2;0;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.TimeNode;359;-6455.979,2938.483;Inherit;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.GetLocalVarNode;421;-5936.924,3446.028;Inherit;False;420;flowspeed;1;0;OBJECT;;False;1;FLOAT;0
Node;AmplifyShaderEditor.TexturePropertyNode;417;-6410.579,3331.619;Inherit;True;Property;_FlowMap;Flow Map;19;0;Create;True;0;0;0;False;0;False;8eec119d7d544c1469995390063459aa;f847e199b0ee52c43957cdf2e6f98664;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
Node;AmplifyShaderEditor.FunctionNode;416;-5747.199,3267.127;Inherit;False;Flow;1;;47;acad10cc8145e1f4eb8042bebe2d9a42;2,50,0,51,0;6;5;SAMPLER2D;;False;2;FLOAT2;0,0;False;55;FLOAT;1;False;18;FLOAT2;0,0;False;17;FLOAT2;1,1;False;24;FLOAT;1;False;1;COLOR;0
Node;AmplifyShaderEditor.SamplerNode;348;-5686.667,2907.891;Inherit;True;Property;_TextureSample2;Texture Sample 2;22;0;Create;True;0;0;0;False;0;False;-1;8eec119d7d544c1469995390063459aa;8eec119d7d544c1469995390063459aa;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RelayNode;432;-5396.075,3260.458;Inherit;False;1;0;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.SimpleAddOpNode;414;-5164.586,3164.641;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.SimpleAddOpNode;423;-5161.109,3354.336;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.SwitchNode;422;-4921.156,3114.54;Inherit;False;1;3;8;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.ScaleAndOffsetNode;355;-4693.694,3091.182;Inherit;False;3;0;COLOR;0,0,0,0;False;1;FLOAT;2;False;2;FLOAT;-1;False;1;COLOR;0
Node;AmplifyShaderEditor.SwizzleNode;358;-4446.953,3069.894;Inherit;False;FLOAT2;0;1;2;3;1;0;COLOR;0,0,0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RangedFloatNode;360;-6450.883,2803.963;Inherit;False;Property;_FogDistortFlowSpeed;Fog Distort Flow Speed;15;0;Create;True;0;0;0;False;0;False;1.5;0.22;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;363;-4548.119,2748.921;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RangedFloatNode;364;-4814.738,2812.311;Inherit;False;Property;_FogDistortion;Fog Distortion;10;0;Create;True;0;0;0;False;0;False;0.1;0.02;0;0.5;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;362;-5859.268,2734.12;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;361;-6144.558,2865.201;Inherit;False;2;2;0;FLOAT;10;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.StaticSwitch;435;-4307.844,2752.504;Inherit;False;Property;_UseFlowMap;Use Flow Map;17;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;FLOAT2;0,0;False;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT2;0,0;False;6;FLOAT2;0,0;False;7;FLOAT2;0,0;False;8;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.TexturePropertyNode;515;-5523.954,558.9843;Inherit;True;Property;_CloudTexture;Cloud Texture;0;0;Create;True;0;0;0;False;0;False;None;ab0840e99fe8fb242a3cec62b068d770;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
Node;AmplifyShaderEditor.RegisterLocalVarNode;524;-5057.993,480.567;Inherit;False;cloudTexObj;-1;True;1;0;SAMPLER2D;;False;1;SAMPLER2D;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;340;-6504.132,1126.959;Inherit;False;2;2;0;FLOAT2;10,0;False;1;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.TimeNode;98;-6749.372,2055.436;Inherit;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.TexCoordVertexDataNode;216;-6744.016,1634.61;Inherit;False;0;2;0;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleDivideOpNode;495;-6454.966,1709.457;Inherit;False;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.PannerNode;97;-6208.69,1901.626;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;1,1;False;1;FLOAT;1;False;1;FLOAT2;0
Node;AmplifyShaderEditor.ParallaxOffsetHlpNode;512;-4009.346,200.6221;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT3;0,0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.ViewDirInputsCoordNode;519;-4333.743,697.9783;Inherit;False;Tangent;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.RangedFloatNode;342;-6833.412,899.408;Inherit;False;Property;_FogWorldSize;Fog World Size;5;0;Create;True;0;0;0;False;0;False;1;1;0.01;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;496;-6833.909,1834.677;Inherit;False;Property;_FogWorldSize2;Fog World Size 2;7;0;Create;True;0;0;0;False;0;False;1;1;0.01;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;344;-6088.294,994.459;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.Vector2Node;192;-6724.002,1924.2;Inherit;False;Property;_FogFlowSpeed2;Fog Flow Speed 2;8;0;Create;True;0;0;0;False;0;False;1,0.5;2,2;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
Node;AmplifyShaderEditor.RangedFloatNode;400;-9776.749,3590.069;Inherit;False;Property;_FlowSpeed1;Flow Speed;18;0;Create;True;0;0;0;False;0;False;0.1;0.5;0;2;0;1;FLOAT;0
Node;AmplifyShaderEditor.Vector2Node;527;-6755.337,1071.511;Inherit;False;Property;_FogFlowSpeed;Fog Flow Speed;6;0;Create;True;0;0;0;False;0;False;1,1;1,1.6;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
Node;AmplifyShaderEditor.FunctionNode;523;-4042.696,-28.1527;Inherit;False;Bidirectional Parallax Mapping;-1;;51;ab457a4ccb6d8f745b63ef50e1417242;1,34,1;5;11;SAMPLER2D;0.0;False;32;SAMPLERSTATE;;False;10;FLOAT;0;False;9;FLOAT;0;False;25;INT;1;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;492;-2213.735,1845.174;Inherit;False;3;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.WorldSpaceLightDirHlpNode;535;-3470.656,871.0662;Inherit;False;False;1;0;FLOAT;0;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.WorldNormalVector;536;-3226.656,706.0662;Inherit;False;True;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.SamplerNode;533;-3568.656,580.0662;Inherit;True;Property;_TextureSample6;Texture Sample 6;23;0;Create;True;0;0;0;False;0;False;-1;None;0648ced4d311a01439d754983b4dc245;True;0;True;bump;Auto;True;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;538;-3839.503,852.6997;Inherit;False;Property;_NormalScale;Normal Scale;16;0;Create;True;0;0;0;False;0;False;0;0.27;0;2;0;1;FLOAT;0
Node;AmplifyShaderEditor.ParallaxMappingNode;510;-3900.705,552.1618;Inherit;False;Normal;4;0;FLOAT2;0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT3;0,0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.DotProductOpNode;534;-2625.847,762.5162;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;537;-2300.296,823.8335;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode;518;-4647.347,461.3539;Inherit;True;Property;_TextureSample8;Texture Sample 8;20;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;483;-3231.578,2204.891;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;24;New Amplify Shader;68574ef6cfd040649ce2c3a216faffa9;True;Outline;0;1;Outline;2;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;True;0;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;False;True;1;LightMode=SRPDefaultUnlit;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;486;-3231.578,2204.891;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;24;New Amplify Shader;68574ef6cfd040649ce2c3a216faffa9;True;Meta;0;4;Meta;1;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;True;12;all;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;487;-3231.578,2204.891;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;24;New Amplify Shader;68574ef6cfd040649ce2c3a216faffa9;True;Universal2D;0;5;Universal2D;1;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;True;12;all;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;488;-3231.578,2204.891;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;24;New Amplify Shader;68574ef6cfd040649ce2c3a216faffa9;True;DepthNormals;0;6;DepthNormals;1;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormals;False;True;12;all;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.SimpleAddOpNode;500;-3393.982,2178.704;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SaturateNode;504;-3222.35,2194.69;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMaxOpNode;493;-3264.302,2364.134;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode;336;-4171.314,2048.599;Inherit;True;Property;_TextureSample1;Texture Sample 1;3;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.GetLocalVarNode;525;-4602.716,2222.528;Inherit;False;524;cloudTexObj;1;0;OBJECT;;False;1;SAMPLER2D;0
Node;AmplifyShaderEditor.SamplerNode;82;-4161.337,2395.374;Inherit;True;Property;_Noise;Noise;22;1;[NoScaleOffset];Create;True;0;0;0;False;0;False;-1;bafc7e110862433480ee89a83e18b70f;ab0840e99fe8fb242a3cec62b068d770;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;499;-3189.048,2545.007;Inherit;False;Property;_FogIntensity;Fog Intensity;9;0;Create;True;0;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.ParallaxOcclusionMappingNode;540;-3541.558,1358.098;Inherit;False;0;8;False;;16;False;;2;0.02;0;False;1,1;False;0,0;8;0;FLOAT2;0,0;False;1;SAMPLER2D;;False;7;SAMPLERSTATE;;False;2;FLOAT;0.02;False;3;FLOAT3;0,0,0;False;4;FLOAT;0;False;5;FLOAT2;0,0;False;6;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RangedFloatNode;520;-5057.327,134.8817;Inherit;False;Property;_Steps;Steps;14;1;[IntRange];Create;True;0;0;0;False;0;False;0;6;0;10;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;541;-4279.072,1411.279;Inherit;False;Property;_CloudHeightScale2;Cloud Height Scale 2;13;0;Create;True;0;0;0;False;0;False;1;0.21;-1;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;546;-3072.004,1568.272;Inherit;False;Property;_Float1;Float 1;20;0;Create;True;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.TimeNode;547;-3091.004,1706.272;Inherit;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;484;-3115.109,1270.864;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;24;New Amplify Shader;68574ef6cfd040649ce2c3a216faffa9;True;ShadowCaster;0;2;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=ShadowCaster;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;485;-3115.109,1270.864;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;24;New Amplify Shader;68574ef6cfd040649ce2c3a216faffa9;True;DepthOnly;0;3;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;True;1;LightMode=DepthOnly;False;True;12;all;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.PannerNode;545;-2858.167,1307.622;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SimpleAddOpNode;551;-4853.285,1091.048;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RelayNode;552;-4974.207,1212.476;Inherit;False;1;0;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.ParallaxOcclusionMappingNode;511;-3540.658,1103.117;Inherit;False;0;8;False;;16;False;;2;0.02;0;False;1,1;False;0,0;8;0;FLOAT2;0,0;False;1;SAMPLER2D;;False;7;SAMPLERSTATE;;False;2;FLOAT;0.02;False;3;FLOAT3;0,0,0;False;4;FLOAT;0;False;5;FLOAT2;0,0;False;6;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.GetLocalVarNode;526;-2658.046,1077.74;Inherit;False;524;cloudTexObj;1;0;OBJECT;;False;1;SAMPLER2D;0
Node;AmplifyShaderEditor.SamplerNode;517;-2335.557,1134.169;Inherit;True;Property;_Cloud;Cloud;22;0;Create;True;0;0;0;False;0;False;-1;None;5183b7a1855a65a428c791790c682c09;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;554;-1592.878,1165.434;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;553;-1591.149,1057.839;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.StaticSwitch;539;-1654.758,1524.14;Inherit;False;Property;_EnableParallax;Enable Parallax;11;0;Create;True;0;0;0;False;0;False;0;0;1;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;548;-3058.76,1369.543;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SamplerNode;555;-2330.968,1550.452;Inherit;True;Property;_Cloud1;Cloud;22;0;Create;True;0;0;0;False;0;False;-1;None;5183b7a1855a65a428c791790c682c09;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;516;-4539.895,1749.544;Inherit;False;Property;_CloudHeightScale;Cloud Height Scale;12;0;Create;True;0;0;0;False;0;False;1;0.13;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;561;-3730.895,1686.556;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;482;-766.2325,1456.829;Float;False;True;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;24;FogPlane;68574ef6cfd040649ce2c3a216faffa9;True;Forward;0;0;Forward;6;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;True;1;1;False;;0;False;;1;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=UniversalForward;True;2;True;12;all;0;Hidden/InternalErrorShader;0;0;Standard;18;Surface;0;638129065335355512;  Blend;0;0;  Def AlphaTest;1;0;Two Sided;1;0;Cast Shadows;0;0;  Use Shadow Threshold;0;0;Receive Shadows;0;0;GPU Instancing;0;0;LOD CrossFade;0;0;Lightmap Support;0;0;Main Light Shadow;0;0;Additional Light Shadow;0;0;Built-in Fog;0;0;Outline Pass;0;0;Depth Pass;1;638129073367233996;Meta Pass;0;0;Universal2D Pass;0;0;DepthNormals Pass;0;0;0;7;True;False;False;True;False;False;False;False;;False;0
Node;AmplifyShaderEditor.LerpOp;562;-1070.85,1339.673;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.ColorNode;563;-1321.57,1020.478;Inherit;False;Property;_FogLightColor;Fog Light Color;21;0;Create;True;0;0;0;False;0;False;0,0,0,0;1,1,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.ColorNode;564;-1322.624,1216.419;Inherit;False;Property;_FogDarkColor;Fog Dark Color;22;0;Create;True;0;0;0;False;0;False;0,0,0,0;0.6352941,0.7019608,0.7372549,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
WireConnection;391;0;390;2
WireConnection;391;1;389;0
WireConnection;394;1;401;0
WireConnection;387;0;391;0
WireConnection;399;0;394;1
WireConnection;399;1;394;2
WireConnection;409;0;387;0
WireConnection;388;0;390;2
WireConnection;388;1;389;0
WireConnection;396;0;399;0
WireConnection;395;0;396;0
WireConnection;395;1;400;0
WireConnection;392;0;388;0
WireConnection;393;0;392;0
WireConnection;403;0;408;0
WireConnection;398;0;395;0
WireConnection;386;0;385;0
WireConnection;402;0;403;0
WireConnection;367;0;380;0
WireConnection;367;1;381;0
WireConnection;371;0;379;0
WireConnection;371;1;373;0
WireConnection;407;0;402;0
WireConnection;369;0;371;0
WireConnection;369;1;370;0
WireConnection;410;0;407;0
WireConnection;375;0;367;0
WireConnection;375;1;382;0
WireConnection;374;1;375;0
WireConnection;376;1;369;0
WireConnection;339;0;480;0
WireConnection;339;1;342;0
WireConnection;377;0;374;0
WireConnection;377;1;376;0
WireConnection;377;2;368;0
WireConnection;420;0;400;0
WireConnection;415;0;377;0
WireConnection;406;1;408;0
WireConnection;404;0;405;0
WireConnection;405;0;406;0
WireConnection;397;0;394;4
WireConnection;416;5;417;0
WireConnection;416;2;362;0
WireConnection;416;24;421;0
WireConnection;348;0;417;0
WireConnection;348;1;362;0
WireConnection;432;0;415;0
WireConnection;414;0;348;0
WireConnection;414;1;432;0
WireConnection;423;0;348;0
WireConnection;423;1;416;0
WireConnection;422;0;348;0
WireConnection;422;1;414;0
WireConnection;422;2;423;0
WireConnection;355;0;422;0
WireConnection;358;0;355;0
WireConnection;363;0;364;0
WireConnection;363;1;358;0
WireConnection;362;0;339;0
WireConnection;362;1;361;0
WireConnection;361;0;360;0
WireConnection;361;1;359;1
WireConnection;435;0;363;0
WireConnection;524;0;515;0
WireConnection;340;0;527;0
WireConnection;340;1;345;1
WireConnection;495;0;216;0
WireConnection;495;1;496;0
WireConnection;97;0;495;0
WireConnection;97;2;192;0
WireConnection;97;1;98;1
WireConnection;512;0;518;1
WireConnection;512;1;516;0
WireConnection;512;2;519;0
WireConnection;344;0;339;0
WireConnection;344;1;340;0
WireConnection;523;11;515;0
WireConnection;523;32;515;1
WireConnection;523;9;516;0
WireConnection;523;25;520;0
WireConnection;492;0;504;0
WireConnection;492;1;493;0
WireConnection;492;2;499;0
WireConnection;536;0;533;0
WireConnection;533;1;510;0
WireConnection;510;0;344;0
WireConnection;510;1;518;1
WireConnection;510;2;516;0
WireConnection;510;3;519;0
WireConnection;534;0;536;0
WireConnection;534;1;535;0
WireConnection;537;0;534;0
WireConnection;537;1;492;0
WireConnection;518;0;515;0
WireConnection;500;0;336;1
WireConnection;500;1;82;1
WireConnection;504;0;500;0
WireConnection;493;0;336;1
WireConnection;493;1;82;1
WireConnection;336;0;525;0
WireConnection;336;1;344;0
WireConnection;82;0;525;0
WireConnection;82;1;97;0
WireConnection;540;0;97;0
WireConnection;540;1;515;0
WireConnection;540;7;515;1
WireConnection;540;2;541;0
WireConnection;540;3;519;0
WireConnection;545;0;511;0
WireConnection;545;2;546;0
WireConnection;545;1;547;1
WireConnection;551;0;344;0
WireConnection;552;0;97;0
WireConnection;511;0;551;0
WireConnection;511;1;515;0
WireConnection;511;7;515;1
WireConnection;511;2;561;0
WireConnection;511;3;519;0
WireConnection;517;0;526;0
WireConnection;517;1;511;0
WireConnection;554;0;517;1
WireConnection;554;1;492;0
WireConnection;553;0;517;1
WireConnection;553;1;492;0
WireConnection;539;1;492;0
WireConnection;539;0;517;1
WireConnection;548;1;540;0
WireConnection;555;0;526;0
WireConnection;555;1;545;0
WireConnection;561;0;516;0
WireConnection;561;1;82;1
WireConnection;482;0;562;0
WireConnection;482;6;539;0
WireConnection;562;0;564;0
WireConnection;562;1;563;0
WireConnection;562;2;539;0
ASEEND*/
//CHKSM=31D9A4E974DFC9A097860A0EA34A7F1B56FC99E9